<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>[3.8]-扩展类库：用户、会话和第三方登录集成 | PhalApi(π框架) - PHP轻量级开源接口框架 - 助你创造价值！</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="telephone=no" name="format-detection">
    <meta content="email=no" name="format-detection">
    <meta name="Author" content="PhalApi,ecitlm,dogstar">
    <meta name="description" content="[3.8]-扩展类库：用户、会话和第三方登录集成，PhalApi是一个PHP轻量级开源接口框架，致力于快速开发接口服务。支持HTTP/SOAP/RPC等协议，可用于搭建接口/微服务/RESTful接口/Web Services。我们不断更新，保持生气；为接口负责，为开源负责！并承诺永久免费！">
    <meta name="keywords" content="PhalApi,phalapi,phalapi接口开发,后台接口开发,后台接口开发框架,接口开发,接口框架,开源接口框架,PHP后台接口开发,PHP接口开发,PHP接口框架,PHP后台接口框架,phalapi官网,PHP接口框架,php接口开发框架,php接口开发,php web框架,π框架,π开发框架,π接口框架,π接口开发框架,api接口,php接口,,PHP接口框架,phalapi文档,phalapi wiki,PhalApi文档,phalapi在线文档,phalapi官方文档">

    <link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" media="screen">
    <link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" media="screen">
    <link rel="stylesheet" href="../css/main.css" />
    <link rel="stylesheet" href="../css/loading_bar.css" />
    <link rel="icon" href="http://webtools.qiniudn.com/dog_catch.png" type="image/x-icon" />
    <script src="../js/pace.min.js"></script>
	
	<!-- 代码高亮 -->
	<link rel="stylesheet" href="../css/highlight.min.css">
	<script src="../js/highlight.min.js"></script>
	<script>hljs.initHighlightingOnLoad();</script>
    
</head>

<body>
    <!-- navbar start -->
    <div class="navbar navbar-default navbar-fixed-top" id="mainnav" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand website_name" href="/"><!-- <span>PhalApi</span> --><strong></strong></a>
            </div>
            <div class="navbar-collapse collapse" aria-expanded="false" style="height: 1px;">
                <ul class="nav navbar-nav navbar-right" id="nav_bar">
                    <li><a href="https://www.phalapi.net/"><span class="glyphicon glyphicon-home"></span></a></li>
                    <li><a href="https://www.phalapi.net/download.html">下载</a></li>
                    <li class="active"><a href="https://www.phalapi.net/wikis/">文档</a></li>
                    <li><a href="https://www.phalapi.net/donate.html">贡献</a></li>
                    <li><a href="#">|</a></li>
                    <li><a href="http://qa.phalapi.net/" target="_blank">社区</a></li>
                    <li><a href="http://www.ituring.com.cn/book/2405" target="_blank">书籍</a></li>
                    <li><a href="http://demo.phalapi.net/listAllApis.php" target="_blank">体验</a></li>
                    <li><a href="https://github.com/phalapi/phalapi-library" target="_blank">扩展</a></li>
                </ul>
            </div>
            <!--/.nav-collapse -->
        </div>
    </div>
    <!-- navbar end -->


    <div id="content">
        <div class="container">
            <div class="row row-md-flex row-md-flex-wrap">
                <h4><a href="#">上一章</a>   <a href="/wikis/">文档首页</a>   <a href="/wikis/%5B3.9%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9Aswoole%E6%94%AF%E6%8C%81%E4%B8%8B%E7%9A%84%E9%95%BF%E9%93%BE%E6%8E%A5%E5%92%8C%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E5%AE%9E%E7%8E%B0.html">下一章</a></h4>
<hr />
<p><em>“你应该明白，我的朋友，<br />
宇宙从来无所谓起始，<br />
它也永远不会有结局，<br />
因为邦迪，戈尔德，还有我，<br />
直到我们头发掉精光，<br />
对这一点都深信不疑！”</em>  </p>
<p><em>--《物理世界奇遇记》</em></p>
<h2>3.8.1 扩展类库：用户、会话和第三方登录集成</h2>
<p>首先，特别感谢@Aevit ，允许我将些扩展类库进行开源。原来此类库的功能只是当前开发项目中的功能，我现将其抽离成可配置使用的扩展类库，以供大家共享。  </p>
<p>此类库主要特点有：</p>
<ul>
<li>1、可以和第三方登录集成，包括：微信登录、新浪登录、QQ登录</li>
<li>2、为客户端提供了直接可以调用的登录接口</li>
<li>3、为服务端提供了直接可以检测用户登录态的操作</li>
<li>4、支持token落地、高效缓存和分布式的数据库存储  </li>
<li>5、展示了如何开发一个项目级的类库、包括数据库配置、翻译等</li>
</ul>
<blockquote>
<p>温馨提示：<br />
此扩展类库还在开发完善中，但已有项目在使用，感兴趣的同学可以尝试使用。  </p>
</blockquote>
<h2>3.8.2 安装</h2>
<h3>(1)扩展包下载</h3>
<p>从  <a href="http://git.oschina.net/dogstar/PhalApi-Library">PhalApi-Library</a>  扩展库中下载获取 <strong>User</strong> 用户包，如使用：</p>
<pre><code class="language-bash">$ git clone https://git.oschina.net/dogstar/PhalApi-Library.git</code></pre>
<p>然后把 <strong>User</strong> 目录复制到 <strong>./PhalApi/Library/</strong> 下，即：</p>
<pre><code class="language-bash">$ cp ./PhalApi-Library/User ./PhalApi/Library/ -R</code></pre>
<h3>(2)数据库表导入</h3>
<p>默认下，User类库会使用默认的数据库配置，但有追加一些需要用到的表。因此需要导入以下表：</p>
<pre><code class="language-bash">$ cd /Library/User
$ tree

├── Data
│   ├── user_login_qq.sql
│   ├── user_login_sina.sql
│   ├── user_login_weixin.sql
│   ├── user_session.sql
│   └── user.sql
</code></pre>
<blockquote>
<p>温馨提示：<br />
导入前，可以自行调整表的前缀。</p>
</blockquote>
<h3>(3)数据库配置</h3>
<p>将 PhalApi-Library/User/Config/dbs.php 里面的配置拷贝到你的项目配置：</p>
<pre><code class="language-php">    //请将以下配置拷贝到 ./Config/dbs.php 文件对应的位置中

        //10张表，可根据需要，自行调整表前缀、主键名和路由
        'user_session' =&gt; array(
            'prefix' =&gt; 'phalapi_',
            'key' =&gt; 'id',
            'map' =&gt; array(
                array('db' =&gt; 'db_demo'),
                array('start' =&gt; 0, 'end' =&gt; 9, 'db' =&gt; 'db_demo'),
            ),
        ),</code></pre>
<h3>(4)入口注册</h3>
<pre><code class="language-php">//必须显式注册，以便可以让服务自行初始化
DI()-&gt;userLite = new User_Lite();</code></pre>
<h3>(5)其他可选配置</h3>
<ul>
<li>为了体现高效缓存的好处，建议先注册DI()-&gt;cache</li>
<li>为了接口更明朗的参数规则说明，建议将下而规则追加到配置文件./Config/app.php中：</li>
</ul>
<pre><code class="language-php">return array(

    /**
     * 应用接口层的统一参数
     */
    'apiCommonRules' =&gt; array(
        //其他原来的参数配置
        ...

        //登录信息
        'userId' =&gt; array(
            'name' =&gt; 'user_id', 'type' =&gt; 'int', 'default' =&gt; 0, 'require' =&gt; false,
        ),
        'token' =&gt; array(
            'name' =&gt; 'token', 'type' =&gt; 'string', 'default' =&gt; '', 'require' =&gt; false,
        ),
    ),</code></pre>
<h3>(6)checkApiParams.php的初始化</h3>
<p>同样，需要在checkApiParams.php文件显式注册，才能让User这个扩展类库完成自我的必要初始化：</p>
<pre><code class="language-php">//装载你的接口
DI()-&gt;loader-&gt;addDirs(array('Demo', 'Library'));
DI()-&gt;userLite = new User_Lite();</code></pre>
<p>否则会导致service不存在。</p>
<h2>3.8.3 入门使用</h2>
<h3>(1)对于客户端</h3>
<h4>(1-1)微信登录</h4>
<h5>1、功能说明</h5>
<p>实现通过微信登录，并且首次登录时，自动创建用户并绑定。</p>
<h5>2、接口URL</h5>
<p>/?service=User_User_Login.weixin + 公共参数(免登录态)</p>
<h5>3、接口参数</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>必须</th>
<th>默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>wx_openid</td>
<td>1</td>
<td>微信OPENID</td>
</tr>
<tr>
<td>wx_token</td>
<td>1</td>
<td>微信TOKEN</td>
</tr>
<tr>
<td>wx_expires_in</td>
<td>1</td>
<td>微信失效时间</td>
</tr>
</tbody>
</table>
<h5>4、返回结果</h5>
<h5>返回字段</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>info</td>
<td>object</td>
<td>登录成功后的相关信息</td>
</tr>
<tr>
<td>user_id</td>
<td>int</td>
<td>用户ID</td>
</tr>
<tr>
<td>token</td>
<td>string</td>
<td>用户TOKEN</td>
</tr>
<tr>
<td>is_new</td>
<td>int</td>
<td>是否为首次登录，0不是，1是</td>
</tr>
</tbody>
</table>
<h5>结果示例</h5>
<pre><code class="language-php">{
    "ret": 200,
    "data": {
        "code": 0,  //0正常登录
        "info": {
            "user_id": 3,  //用户ID
            "token": "430C0F31FAF1FB1565E4290D1B61185A2408A6DEEA1604C1B5AEB14E44BDF2E0",  //用户TOKEN
            "is_new": 0   //是否为首次登录，0不是，1是
        },
        "msg": ""
    },
    "msg": ""
}</code></pre>
<h5>请求示例</h5>
<p>/service=User_User_Login.weixin&amp;wx_openid=wx_122348561111&amp;wx_token=ASDF&amp;wx_expires_in=130000000&amp;name=weixinName&amp;avatar=phpunit.png</p>
<h4>(1-2)QQ登录</h4>
<h5>1、功能说明</h5>
<p>实现通过QQ登录，并且首次登录时，自动创建用户并绑定。</p>
<h5>2、接口URL</h5>
<p>/?service=User_User_Login.qq + 公共参数(免登录态)</p>
<h5>3、接口参数</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>必须</th>
<th>默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>qq_openid</td>
<td>1</td>
<td>QQ的OPENID</td>
</tr>
<tr>
<td>qq_token</td>
<td>1</td>
<td>QQ的TOKEN</td>
</tr>
<tr>
<td>qq_expires_in</td>
<td>1</td>
<td>QQ的失效时间</td>
</tr>
</tbody>
</table>
<h5>4、返回结果</h5>
<h5>返回字段</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>info</td>
<td>object</td>
<td>登录成功后的相关信息</td>
</tr>
<tr>
<td>user_id</td>
<td>int</td>
<td>用户ID</td>
</tr>
<tr>
<td>token</td>
<td>string</td>
<td>用户TOKEN</td>
</tr>
<tr>
<td>is_new</td>
<td>int</td>
<td>是否为首次登录，0不是，1是</td>
</tr>
</tbody>
</table>
<h5>结果示例</h5>
<pre><code>{
    "ret": 200,
    "data": {
        "code": 0,  //0正常登录
        "info": {
            "user_id": 3,  //用户ID
            "token": "430C0F31FAF1FB1565E4290D1B61185A2408A6DEEA1604C1B5AEB14E44BDF2E0",  //用户TOKEN
            "is_new": 0   //是否为首次登录，0不是，1是
        },
        "msg": ""
    },
    "msg": ""
}</code></pre>
<h5>请求示例</h5>
<p>/service=User_User_Login.qq&amp;qq_openid=xxxx&amp;qq_token=ASDF&amp;qq_expires_in=130000000&amp;name=sinaName&amp;avatar=<a href="http://dev.phalapi.com/no_avatar.png">http://dev.phalapi.com/no_avatar.png</a></p>
<h4>(1-3)新浪微博登录</h4>
<h5>1、功能说明</h5>
<p>实现通过新浪微博登录，并且首次登录时，自动创建用户并绑定。</p>
<h5>2、接口URL</h5>
<p>/?service=User_User_Login.sina</p>
<h5>3、接口参数</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>必须</th>
<th>默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>sina_openid</td>
<td>1</td>
<td>新浪微博OPENID</td>
</tr>
<tr>
<td>sina_token</td>
<td>1</td>
<td>新浪微博TOKEN</td>
</tr>
<tr>
<td>sina_expires_in</td>
<td>1</td>
<td>新浪微博失效时间</td>
</tr>
</tbody>
</table>
<h5>4、返回结果</h5>
<h5>返回字段</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>info</td>
<td>object</td>
<td>登录成功后的相关信息</td>
</tr>
<tr>
<td>user_id</td>
<td>int</td>
<td>用户ID</td>
</tr>
<tr>
<td>token</td>
<td>string</td>
<td>用户TOKEN</td>
</tr>
<tr>
<td>is_new</td>
<td>int</td>
<td>是否为首次登录，0不是，1是</td>
</tr>
</tbody>
</table>
<h5>结果示例</h5>
<pre><code>{
    "ret": 200,
    "data": {
        "code": 0,  //0正常登录
        "info": {
            "user_id": 3,  //用户ID
            "token": "430C0F31FAF1FB1565E4290D1B61185A2408A6DEEA1604C1B5AEB14E44BDF2E0",  //用户TOKEN
            "is_new": 0   //是否为首次登录，0不是，1是
        },
        "msg": ""
    },
    "msg": ""
}</code></pre>
<h5>请求示例</h5>
<p>/service=User_User_Login.weixin&amp;wx_openid=wx_122348561111&amp;wx_token=ASDF&amp;wx_expires_in=130000000&amp;name=weixinName&amp;avatar=phpunit.png</p>
<h4>(1-4)用户信息</h4>
<h5>1、功能说明</h5>
<p>获取用户个人信息</p>
<h5>2、接口URL</h5>
<p>/?service=User_User_Info.getUserInfo + 公共参数</p>
<h5>3、接口参数</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>必须</th>
<th>默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>other_user_id</td>
<td>1</td>
<td>用户id</td>
</tr>
</tbody>
</table>
<h5>4、返回结果</h5>
<h5>返回字段</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>info</td>
<td>object</td>
<td>登录成功后的相关信息</td>
</tr>
<tr>
<td>user_id</td>
<td>int</td>
<td>用户ID</td>
</tr>
<tr>
<td>username</td>
<td>string</td>
<td>用户名</td>
</tr>
<tr>
<td>nickname</td>
<td>string</td>
<td>用户昵称</td>
</tr>
<tr>
<td>avatar</td>
<td>string</td>
<td>用户头像url</td>
</tr>
</tbody>
</table>
<h5>结果示例</h5>
<pre><code>{
    "ret": 200,
    "data": {
        "code": 0,
        "info": {
            "username": "aevit",
            "nickname": "test",
            "avatar": "",
            "user_id": 1
        },
        "msg": ""
    },
    "msg": ""
}</code></pre>
<h5>请求示例</h5>
<p>/service=User_User_Info.getUserInfo&amp;other_user_id=1</p>
<h3>(2)对于服务端</h3>
<h4>(1)温柔式检测登录态</h4>
<pre><code class="language-php">$isLogin = DI()-&gt;userLite-&gt;check();</code></pre>
<h4>(2)强制式检测登录态</h4>
<pre><code class="language-php">DI()-&gt;userLite-&gt;check(true);</code></pre>
<h4>(3)更多操作</h4>
<p>当需要对用户进行退出登录时，可以在接口中执行：  </p>
<pre><code class="language-php">DI()-&gt;userLite-&gt;logout();</code></pre>
<p>当需要为用户新建一个会话时，可以在接口中执行：  </p>
<pre><code class="language-php">DI()-&gt;userLite-&gt;generateSession(1); //假设用户ID为1</code></pre>
<p>当需要为用户延长登录态有效时间时（默认为一个月），可以在接口进行心跳操作，从而再延长一个月有效时间：  </p>
<pre><code class="language-php">DI()-&gt;userLite-&gt;heartbeat();</code></pre>
<h2>3.8.4 示例</h2>
<h3>(1)假设在我们的应用的接口中：</h3>
<pre><code class="language-php">&lt;?php

class Api_Test extends PhalApi_Api {

    public function go() {
        Di()-&gt;userLite-&gt;check(true);

        return 'ok';
    }
}
</code></pre>
<h3>(2)先调用微信的登录：</h3>
<pre><code>/user/?service=User_User_Login.Weixin&amp;wx_openid=wx_122348561111&amp;wx_token=ASDF&amp;wx_expires_in=130000000&amp;name=weixinName&amp;avatar=phpunit.png</code></pre>
<p>返回：</p>
<pre><code class="language-php">{
    "ret": 200,
    "data": {
        "code": 0,
        "info": {
            "user_id": 94,
            "token": "8509BE9C80B67009C559E6A2C4B88E02C885DA6B9FEFFC2DA080999377D08FBF",
            "is_new": 0
        },
        "msg": ""
    },
    "msg": ""
}</code></pre>
<h3>(3)再调用我们应用 的接口：</h3>
<pre><code>/user/?service=Test.go&amp;user_id=94&amp;token=CE1218493B3A441FCF630E24E98FD3640133EBA6D734C90A620A11C07CE35323</code></pre>
<p>返回：</p>
<pre><code class="language-php">{"ret":200,"data":"ok","msg":""}</code></pre>
<h3>(4)未登录下，返回：</h3>
<pre><code class="language-php">{"ret":401,"data":[],"msg":"\u975e\u6cd5\u8bf7\u6c42\uff1auser not login"}</code></pre>
<hr />
<h4><a href="#">上一章</a>   <a href="/wikis/">文档首页</a>   <a href="/wikis/%5B3.9%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9Aswoole%E6%94%AF%E6%8C%81%E4%B8%8B%E7%9A%84%E9%95%BF%E9%93%BE%E6%8E%A5%E5%92%8C%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E5%AE%9E%E7%8E%B0.html">下一章</a></h4><div style="float: left">
<h4>
<a href="http://qa.phalapi.net/">还有疑问？欢迎到社区提问！</a>
&nbsp;&nbsp;
<a href="http://docs.phalapi.net/#/v2.0/">切换到PhalApi 2.x 开发文档。</a>
</h4>
</div>
            </div>
        </div>
    </div>

 <!-- 广告位 -->
<div class="grid-wrapper desktop-only">
	<p align="center">
		<a href="http://7xiz2f.com1.z0.glb.clouddn.com/%E6%88%91%E7%9A%84%E5%90%8D%E5%AD%97%E5%8F%AB%EF%BC%9A%CF%80%E6%A1%86%E6%9E%B6%20-%20PhalApi%202016%E5%B9%B4%E5%BA%A6%E5%BC%80%E6%BA%90%E6%80%BB%E7%BB%93%20-%20%E5%AE%98%E6%96%B9%E5%87%BA%E5%93%81.pdf" target="blank"><img width="950" height="100" src="http://7xiz2f.com1.z0.glb.clouddn.com/ad_20170104.png"></a>
		<a href="http://www.itran.cc/" target="blank"><img width="950" height="100" src="http://7xslqv.com1.z0.glb.clouddn.com/images/9/69/b88bc92455dc1239f9a5bf8d72929.png"></a>
		<a href="http://web-tools.phalapi.net/" target="blank"><img width="950" height="100" src="http://7xslqv.com1.z0.glb.clouddn.com/images/7/d0/88f523566c482296aecc43d185ca2.png"></a>
	</p>
</div>

        <!-- footer -->
        <div class="footer">
            <div class="link container ">
                <div class=" col-xs-7 col-sm-7 col-md-7 col-lg-7 ">
                    <h3>PhalApi (π框架)</h3>
                    <p>一个轻量级PHP开源接口框架，专注于接口服务开发，支持HTTP/SOAP/RPC协议，拥有自动生成的在线文档、多种开发语言的客户端SDK包以及可重用的扩展类库，可用于快速搭建微服务、RESTful接口或Web
                        Services。</p>
                    <!-- <p>:</p> -->
                    <a href="https://www.phalapi.net/" target="_blank"> PhalApi </a>
                    <span>|</span>
                    <a href="http://qa.phalapi.net/" target="_blank">社区</a>
                    <span>|</span>
                    <a href="download.html" target="_blank">下载</a>
                    <span>|</span>
                    <a href="/wikis/">文档</a>
                    <span>|</span>
                    <a href="http://www.ituring.com.cn/book/2405" target="_blank">书籍</a>
                    <span>|</span>
                    <a href="http://demo.phalapi.net/listAllApis.php" target="_blank">体验</a>
                    <span>|</span>
                    <a href="donate.html" target="_blank">贡献</a>
                    <span>|</span>
                    <a href="https://github.com/phalapi/phalapi-library" target="_blank">扩展</a>
                    <span>|</span>
                    <a href="/license.html" target="_blank">许可</a>
                    <span>|</span>
                    <a href="/about.html" target="_blank">关于</a>
                    <span>|</span>
                    <a href="https://www.phalapi.net/wikis/en/" target="_blank">English</a>

                </div>
                <div class=" col-xs-5 col-sm-5 col-md-5 col-lg-5 contact_us ">
                    <h3>联系我们</h3>
                    <a href="https://github.com/phalapi/phalapi"><img src="../images/github.png" alt="github" /></a>
                    <a href="http://weibo.com/p/100808d236e99beb645bfb56ed1c37dde9b8bd?k=phalapi%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6&from=501&_from_=huati_topic"><img src="../images/weibo.png"  alt="weibo" /></a>
                    <a href="http://7xslqv.com1.z0.glb.clouddn.com/images/1/b0/894fde762850cb11250253f7d5ede.png"><img src="../images/zfb.png"  alt="zfb" /></a>
					<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=f16292029e59975d4ccfccc70ed87aa5c5646df512e83b0e9e1270e8368be461"><img border="0" src="images/qq.png" alt="π框架 - PhalApi交流群②" title="π框架 - PhalApi交流群②"></a>
					<a href="http://git.oschina.net/dogstar/PhalApi"><img src="../images/git-oschina.png"  alt="git-oschina" /></a>
                </div>
                <div class="cls"></div>
                <div class="text-center copy_right"> ©2015-2017 PhalApi All Rights Reserved. <a href="http://www.miitbeian.gov.cn" target="_blank">粤ICP备15028808号</a>

				<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1255326144'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s4.cnzz.com/z_stat.php%3Fid%3D1255326144%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));</script>
                </div>
            </div>
        </div>
    </div>


    <a href="https://github.com/phalapi"><img id="gitHub_fllow" style="position: fixed; top: 0; right: 0; border: 0;z-index:9999" src="https://camo.githubusercontent.com/652c5b9acfaddf3a9c326fa6bde407b87f7be0f4/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6f72616e67655f6666373630302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"></a>


    <script src="../js/jquery-1.11.1.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
</body>

</html>